What is detective-es6?
The detective-es6 npm package is designed to analyze JavaScript files to find and extract import/require statements. This is particularly useful for tools that need to understand dependencies between modules in ES6, CommonJS, or similar module systems. It can be used for tasks such as bundling, dependency analysis, and refactoring.
What are detective-es6's main functionalities?
Extract import statements from ES6 modules
This feature allows you to extract all import statements from a string of ES6 module code. It's useful for analyzing module dependencies.
const detective = require('detective-es6');
const src = `import { foo } from 'my-module';`;
const dependencies = detective(src);
console.log(dependencies); // Outputs: ['my-module']
Extract require statements from CommonJS modules
This feature enables the extraction of require statements from CommonJS module code, helping in the analysis of dependencies in a Node.js environment.
const detective = require('detective-es6');
const src = `const foo = require('my-module');`;
const dependencies = detective(src);
console.log(dependencies); // Outputs: ['my-module']
Other packages similar to detective-es6
precinct
Precinct is a tool similar to detective-es6 that inspects files to determine their dependencies. It supports a wider range of file types including TypeScript, AMD, and CSS. Compared to detective-es6, Precinct offers a more comprehensive solution for dependency detection across different module systems and file types.
madge
Madge is a more comprehensive tool that builds on the functionality provided by detective-es6. It not only finds dependencies but also creates visual graphs of module dependencies. While detective-es6 focuses on the extraction of import/require statements, Madge provides a higher-level overview of project structure and dependencies.
detective-es6
Get the dependencies of an ES6 module
npm install detective-es6
Usage
const fs = require('fs');
const detective = require('detective-es6');
const mySourceCode = fs.readFileSync('myfile.js', 'utf8');
const dependencies = detective(mySourceCode);
You may also (optionally) configure the detective via a second object argument detective(src, options) that supports the following options:
skipTypeImports
: (Boolean) whether or not to omit type imports (import type {foo} from "mylib";
) in the list of extracted dependencies.skipAsyncImports
: (Boolean) whether or not to omit async imports (import('foo')
) in the list of extracted dependencies.
License
MIT